1. Field of the invention
This invention relates to distributed processing, particularly but not exclusively distributed processing for control of a telecommunications network. More particularly, this invention is concerned with developing and updating the control systems implemented on the distributed processors, which are preferably (but not necessarily) processes implemented in an object-oriented fashion.
2. Related Art
Telecommunications networks are increasingly required to support high bandwidth, low delay information flow. The bandwidth required is rapidly progressing from kilobits per second to megabits per second and even, for some applications, gigabits per second (particularly, for example, for video on demand; animated shared simulations, and distributed computing).
To provide xe2x80x9cintelligent networkxe2x80x9d facilitates such as call redirection to particular numbers, computer programs run on a number of host computers (up to 100, for example) connected with switching centres. The way in which services are to be provided for particular customers (for example, a particular number to which calls for a customer are to be routed) depends upon data stored in relation to that customer on the host computers. Thus, there may be many millions of subscriber records on tens or hundreds of host computers.
In xe2x80x9cTwenty-twenty visionxe2x80x94software architectures for intelligence in the 21st centuryxe2x80x9d, P. A. Martin, BT Technol J Vol 13 No. 2 April 1995, the present inventor has proposed the use of object-oriented techniques to implement the distributed processing required.
A description of object oriented technology will be found in, for example, BT Technol J Vol. 11 No. 3 (July 1993), xe2x80x9cObject oriented technologyxe2x80x9d, edited by E. L. Cusack and E. S. Cordingley. Although the term is not always used with precision, object oriented computing here refers to the computing technique in which data is stored in xe2x80x9cencapsulatedxe2x80x9d form in which, rather than being directly accessible by a calling program or routine, the data is accessible only by an associated program which can read, write and edit the data. A record of data and its associated programs are referred to as an xe2x80x9cobjectxe2x80x9d. Communication to and from an object is generally by xe2x80x9cmessage passingxe2x80x9d; that is, a call to the object passes data values and invokes the operation of one of the programs comprised within the object, which then returns data values.
Various languages are available for programmers who wish to use the objected oriented approach. Of these, the commonest at present is C++.
Distributed processing differs from single processor operation in several respects. Firstly, different access techniques may be required depending on whether other programs or data are located on the same host computer as a calling program or on a different host computer. The location of a program or data will also affect the speed with which it can be reached from another program. Also, one or more host computers may fail whilst leaving others in operation.
Distributed computing is conventionally performed, by using a xe2x80x9cclient-serverxe2x80x9d arrangement in which a xe2x80x9cclientxe2x80x9d program on one computer interrogates a xe2x80x9cserverxe2x80x9d program on another computer which then performs the function or returns the data required by the client program.
Object oriented techniques have not widely been applied to distributed processing. A summary of the state of the art in this respect may be found in xe2x80x9cObject oriented programming systemsxe2x80x9d; Blair G., Pitman Publishing, London, 1991 (ISBN 0-273-03132-5) and particularly in Chapter 9 at pages 223-243; xe2x80x9cDistributed systems and objectsxe2x80x9d; David Hutchison and Jonathan Walpole. Previous attempts have generally added new syntax to an existing computer language, or have created new computer languages, to extend conventional object oriented programming to deal with distributed processing.
In one aspect, the present invention provides a compiler (or pre-compiler) for generating code for use in distributed processing on a plurality of host computers (for example for controlling telecommunications systems) which is arranged to receive a source program written in a computing language, comprising first statements which are compilable by other compilers, the compiler or pre-compiler being arranged to operate on second statements which will be ignored by said other compilers to adapt the program for multiprocessor operation. Preferably, the second statements are in comments fields.
Conveniently, this aspect of the invention comprises a pre-compiler which can then be used with a more conventional compiler, but will be recognised that the functionality of the invention could be incorporated directly into a re-written compiler.
Thus, according to this aspect of the invention, the source code may be compiled and tested for execution by the author of the program on a single processor by a conventional compiler, the second statements specific to the multiprocessor, environment being ignored by the single host compiler, prior to being compiled to execute on a multiprocessor system by the compiler of the invention. This enables the programmer to validate the basic operation of the program without need to test it in real time.
In another aspect, the present invention provides a compiler for a distributed object system, which in functional requirements on system performance criteria can be entered and are interpreted during compilation to ensure that the function or requirements are met.
For example, the system performance criteria may be response time, number of objects, or integrity of data.
Preferably, in this aspect, functional requirements can be stored for each object and/or class of objects.
Conveniently, the functional requirements are specified using the second statements referred to in the first aspect above.
Other aspects and embodiment of the invention are as described and claimed hereafter.